/*
 * UIEventImp.h
 *
 *  Created on: Apr 18, 2009
 *      Author: wrice
 */

#ifndef UIEVENTIMPL_H_
#define UIEVENTIMPL_H_

#include "DOMEventImp.h"
namespace DOMEventImp {

class UIEventImp: public EventImp, IMPLEMENTS( UIEvent )  {
public:
	UIEventImp(
			DOMEvent::EventTarget * target,
			DOMEvent::EventTarget * currentTarget,
			DOMEvent::DOMString typeArg,
			bool canBubbleArg,
			bool cancelableArg,
			AbstractView * viewArg,
			long detailArg);
	virtual ~UIEventImp() {}

	virtual void initUIEvent(
			DOMEvent::DOMString typeArg,
			bool canBubbleArg,
			bool cancelableArg,
			AbstractView * viewArg,
			long detailArg);

	virtual AbstractView * getView() const;
    virtual long getDetail() const;

    static const DOMString EVENT_CHANGE, EVENT_FOCUS, EVENT_KEY_DOWN, EVENT_KEY_PRESS,EVENT_KEY_UP;

private:
	AbstractView * view_;
	long detail_;
};

}

#endif /* UIEVENTIMPL_H_ */
